package main

import "fmt"
//在Go语言中，没有内置的函数来去重，只有自己去实现一个。

func main() {
	arr := []string{"11", "22", "33", "33"}
	arr2 := removeDuplicateStrSlice(arr)
	fmt.Println(arr2)
}

func removeDuplicateStrSlice(strSlice []string) []string {
	fmt.Printf("\n strSlice %+v ", strSlice)
	//利用映射中 key 的唯一性来去重
	allkeys := make(map[string]bool)
	list := []string{}
	for _, item := range strSlice {
		//尝试从映射中取值，如果能取出，说明已重复
		if _, value := allkeys[item]; !value {
			allkeys[item] = true //添加到映射中
			list = append(list, item)
		}
	}
	return list
}
